package com.openess.bigsearch.engine.BTree.util;

/**
 * 集合抽象类，以后所有的集合都要继承自这个抽象类
 * 
 * @author TuTu
 * 
 * @param <E>
 */
public interface CCollection<E> extends Iterable<E> {
	java.util.Iterator<E> iterator();

	String toString();

	/**
	 * 确认集合中是否包含指定的元素
	 * 
	 * @return
	 */
	boolean contain(E elements);

	/**
	 * 判断集合是否为空
	 * 
	 * @return
	 */
	boolean isEmpty();

	/**
	 * 将集合转换为数组，数组的类型和参数相同
	 * 
	 * @param a
	 *            如果a的空间足以装下集合中的所有数据，那么将数据全部装入a中，否则创建一个和a同类型的新数组，并把数据装入其中
	 * @return
	 */
	<T> T[] toArray(T[] a);

	/**
	 * 将集合转换为数组，数组中元素的类型和参数相同
	 * 
	 * @param a
	 * @return
	 */
	<T> T[] toArray(T a);

	/**
	 * 将集合穿换成数组
	 * 
	 * @return
	 */
	Object toArray();
}
